package com.boot.system.service;

import com.boot.common.result.Result;
import com.boot.system.entity.SysConfig;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;

import java.util.List;
import java.util.Map;

public interface ConfigService extends IService<SysConfig> {

    /**
     * 配置分页
     * @param queryParam 查询条件
     * @return 列表
     */
    Page<SysConfig> getConfigPage(Map<String, Object> queryParam);

    /**
     * 配置列表
     * @param queryParam 查询条件
     * @return 列表
     */
    List<SysConfig> getConfigList(Map<String, Object> queryParam);

    /**
     * 新增配置
     * @param dataParam 角色表单
     * @return 状态
     */
    Result<?> addConfig(Map<String, Object> dataParam);

    /**
     * 修改配置
     * @param dataParam 角色表单
     * @return 状态
     */
    Result<?> updateConfig(Map<String, Object> dataParam);

    /**
     * 删除配置
     * @param ids 多个以英文逗号(,)分割
     * @return 状态
     */
    boolean deleteConfig(String ids);

    /**
     * 获取公共配置列表（缓存）
     * @return 健值对
     */
    Map<String, String> getCacheList();

    /**
     * 获取配置（缓存）
     * @param configKey key
     * @return 值
     */
    Object getCache(String configKey);

    /**
     * 设置配置（缓存）
     * @param id 配置ID
     */
    void setCache(Long id);

    /**
     * 删除配置（缓存）
     * @param ids ID集合
     */
    void deleteCache(List<Long> ids);

}
